//package ade.prime.activity;
// 
//import java.io.File;
//import java.io.FileOutputStream;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.OutputStream;
//import java.net.HttpURLConnection;
//import java.net.MalformedURLException;
//import java.net.URL;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Random;
// 
//import ade.prime.activity.R;
//import ade.prime.database.Database;
//import ade.prime.exception.AAAException;
//import ade.prime.model.Lesson;
//import ade.prime.model.Schedule;
//import ade.prime.service.AdeWebService;
//import android.app.PendingIntent;
//import android.app.Service;
//import android.appwidget.AppWidgetManager;
//import android.content.Intent;
//import android.content.SharedPreferences;
//import android.graphics.Bitmap;
//import android.graphics.BitmapFactory;
//import android.net.Uri;
//import android.os.AsyncTask;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.IBinder;
//import android.preference.PreferenceManager;
//import android.util.Log;
//import android.widget.RemoteViews;
// 
//public class WidgetService extends Service {
// 
//	AsyncImageLoader loader;
//	protected boolean isLoaded = false;
//	AppWidgetManager appWidgetManager;
// 
//	protected Handler handler = new Handler();
// 
//	SharedPreferences prefs;
//	
//	private Object databaseWriteLock ;
//	private static Lesson lesson;
// 
//	@Override
//	public void onStart(Intent intent, int startId)
//	{
//		this.databaseWriteLock = new Object() ;
//		
//		this.prefs = PreferenceManager.getDefaultSharedPreferences(this);
// 
//		this.appWidgetManager = AppWidgetManager.getInstance(this
//				.getApplicationContext());
// 
//		int[] allWidgetIds = intent
//				.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);
// 
//		for(int widgetId : allWidgetIds)
//		{
//			if(widgetId == 0)
//				continue;
// 
//			RemoteViews remoteViews = new RemoteViews(this
//					.getApplicationContext().getPackageName(),
//					R.layout.widget);
// 
//			//Affichage du cours
//			this.init(remoteViews);
//
// 
//	        // Set the click intent so that we can handle it
//	        final Intent scheduleIntent = new Intent(this, ViewSchedule.class);
//	        final Bundle extras = new Bundle();
//	        Schedule schedule = this.getSchedule();
//	        scheduleIntent.putExtra(ScheduleList.EXTRA_SCHEDULE, schedule);
//	        scheduleIntent.putExtras(extras);
//	        PendingIntent pendingIntent = PendingIntent.getBroadcast(
//					getApplicationContext(), 0, scheduleIntent,
//					PendingIntent.FLAG_UPDATE_CURRENT);
//	        remoteViews.setOnClickPendingIntent(R.id.lesson_name, pendingIntent);
//		}
// 
//		stopSelf();
// 
//		super.onStart(intent, startId);
//	}
// 
//	private Schedule getSchedule() {
//		//Pour l'instant l'edt MIS1
//		synchronized (this.databaseWriteLock) {
//			Database db = new Database(this) ;
//			Schedule schedule = new Schedule();
//			try {
//				schedule = db.getScheduleWithName("MIS1");
//			} catch (AAAException e) {
//				// TODO Auto-generated catch block
//				Log.i("widget", "echec recup edt");
//				e.printStackTrace();
//			}
//			return schedule ;
//		}// synchronized
//	}
//
//	public void init(RemoteViews remoteViews) {
//		Log.i("widget", "init");
//		this.getLesson();
//		Log.i("widget", "cours récupéré : "+this.lesson);
//		//remoteViews.setTextViewText(R.id.lesson_date, this.lesson.getTime());
//		remoteViews.setTextViewText(R.id.lesson_name, this.lesson.getTitle());
//		remoteViews.setTextViewText(R.id.lesson_time, this.lesson.getTime());
//		remoteViews.setTextViewText(R.id.lesson_room, this.lesson.getRoom());
//	}
//
//	@Override
//	public IBinder onBind(Intent intent) {
//		return null;
//	}
//
// 
//	/*
//	 * Récupération du cours
//	 */
//	private Lesson getLesson() {
//		//Pour l'instant récupére le 1er cours de l'edt MIS1
//		synchronized (this.databaseWriteLock) {
//			Database db = new Database(this) ;
//			this.lesson = new Lesson();
//			this.lesson = db.getLessonWithID(16637, "MIS1") ;
//			return lesson ;
//		}// synchronized
//	}
// 
//	public void updateAppWidget(int widgetId, RemoteViews remoteViews, Lesson lesson)
//	{
//		Log.i("widget", "maj");
//		this.getLesson();
//		//remoteViews.setTextViewText(R.id.lesson_date, this.lesson.getTime());
//		remoteViews.setTextViewText(R.id.lesson_name, this.lesson.getTitle());
//		remoteViews.setTextViewText(R.id.lesson_time, this.lesson.getTime());
//		remoteViews.setTextViewText(R.id.lesson_room, this.lesson.getRoom());
//	}
// 
//	private static class AsyncImageLoader
//		extends AsyncTask < String, Integer, Integer >
//	{
//		private static final int RESULT_SUCCESS = 0x00;
//		private static final int RESULT_FAILED = 0x01;
//		private static final int RESULT_CANCELLED = 0x02;
// 
//		WidgetService activity;
//		File file;
// 
//		private RemoteViews rv;
//		private int viewId;
// 
//		private Handler handler;
// 
//		public void init(WidgetService widgetImageUpdateService)
//		{
//			activity = widgetImageUpdateService;
//		}
// 
//		@Override
//		protected Integer doInBackground(String... params)
//		{
//			if (params.length != 1)
//				return RESULT_FAILED;
// 
//			URL url;
//			try
//			{
//				url = new URL( params[0] );
//				HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 
//				if (isCancelled())
//					return RESULT_CANCELLED;
// 
//				InputStream input = conn.getInputStream();
//				OutputStream output = new FileOutputStream( file );
// 
//				byte[] bytes = new byte[4096];
//				for (;;)
//				{
//					int count = input.read( bytes );
//					if (count == -1)
//						break;
// 
//					if (isCancelled())
//					{
//						output.close();
//						file.delete();
//						return RESULT_CANCELLED;
//					}
// 
//					output.write( bytes, 0, count );
//				}
//				output.close();
//			}
//			catch (MalformedURLException e)
//			{
//				return RESULT_FAILED;
//			}
//			catch (IOException e)
//			{
//				return RESULT_FAILED;
//			}
//			return RESULT_SUCCESS;
//		}
// 
//		@Override
//		protected void onPostExecute(Integer result)
//		{
//			switch (result)
//			{
//			case RESULT_SUCCESS:
//				if (lesson != null)
//				{
//					 this.handler.postDelayed(new Runnable() {
//						public void run()
//						{
//							activity.updateAppWidget(viewId, rv, lesson);
//						}
//					 }, 100);
// 
//					activity.isLoaded = true;
//				}
//				break;
//			case RESULT_FAILED:
//				break;
//			case RESULT_CANCELLED:
//				break;
//			}
// 
//			activity.loader = null;
//		}
//	}
//
//}